Voice-data integrated multiaccess by self-reservation and stabilized aloha contention

ABSTRACT

A multiple access communication protocol that includes an uplink and a downlink channel is disclosed. The uplink channel has a plurality of frames, such that each frame has a first selectable number of minislots and a second selectable number of slots. A reservation request of a first type is sent into a first selected minislot of a selected frame of the uplink channel when information of a first type is to be sent. The reservation request of the first type requests an assignment for at least one slot for transmitting information of the first type in at least one frame that is subsequent to the selected frame. A reservation request of a second type is sent into a second selected minislot of the selected frame when the second selected minislot is available in the selected frame and when information of a second type is to be sent. The reservation request of the second type requests an assignment of at least one slot for transmitting information of the second type in at least one frame that is subsequent to the selected frame, and contends for the second selected minislot based on a pseudo-Bayesian Aloha algorithm. The downlink channel contains a feedback message that occurs prior to the end of the selected frame of the uplink channel. The feedback message includes minislot assignment information for sending reservation requests of the first and the second type and slot assignment information for transmitting information of the first and the second type, minislot contention information for the reservation requests of the second type sent in the selected frame, and reservation backlog information for an estimated number of reservation requests of the second type pending at a beginning of the selected frame.

BACKGROUND OF THE INVENTION

The present application is a continuation of patent application Ser. No. 09/597,392, filed Jun. 19, 2000 now U.S. Pat. No. 6,963,545, entitled Voice-Data Integrated Multiaccess By Self-Reservation And Stabilized Aloha Contention, invented by J.-M. Ho, which is related to application Ser. No. 09/596,712, entitled Voice-Data Integrated Multiaccess By Self-Reservation and Blocked Binary Tree Resolution, invented by J.-M. Ho, and filed concurrently with the present application; and is a continuation-in-part patent application of patent application Ser. No. 09/222,879, entitled Multimedia Packet Multiple Access To High-Speed Local-Loop Broadcast Channels: Algorithm Design, invented by J.-M. Ho, and filed Dec. 30, 1998; a continuation-in-part patent application of patent application Ser. No. 09/222,878, entitled “Multimedia Packet Multiple Access To High-Speed Local-Loop Broadcast Channels Protocol Architecture, invented by J.-M. Ho, and filed Dec. 30, 1999; each of which is related to Provisional patent application 60/103,370, filed Oct. 7, 1998, now expired; each of which is incorporated by reference herein.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to the fields of telecommunications and computing. More particularly, the present invention relates to a protocol for voice-data integrated multiaccess to FDD (frequency division duplex) or TDD (time division duplex) local- or wide-area networks.

2. Description of the Related Art

The emerging convergence of telecommunications and computing has brought about considerable significance to dynamic multiplexing of voice and data over both wireline and wireless multiaccess channels, such as used in cellular and hybrid fiber-coax (HFC) networks. Bandwidth efficiency is a key consideration for voice-data integration and has been addressed in many studies by applying packet switching to both voice and data portions of the traffic, shunning circuit switching altogether.

For conventional multiple access, speech packets generated during active speech periods contend for channel access in a manner similar to that used for data packets, for instance, on Ethernet LANs. Packet reservation multiple access (PRMA) and derivatives of PRMA, as well as D-TDMA, are the most familiar medium access control (MAC) protocol examples that operate on this basis. Nevertheless, speech packets may encounter excessive delays for conventional multiple access, thereby resulting in speech clipping.

As is well known, bandwidth efficiency is not the only issue that merits attention in packet transmission. Quality of service is another critical factor that must be taken into account to meet the requirements of the underlying applications. In this regard, speech transmission delay should be always upper-bounded to a certain threshold for a satisfactory reception.

What is needed is a technique for dynamically multiplexing voice and data over a multiaccess channel that provides a predetermined quality of service for voice transmission by providing a speech access delay that is always upper bounded to a predetermined threshold.

SUMMARY OF THE INVENTION

The present invention provides a technique for dynamically multiplexing voice and data over a multiaccess channel that provides a predetermined quality of service for voice transmission by providing a speech access delay that is always upper bounded to a predetermined threshold.

The advantages of the present invention are provided by a MAC protocol that operates on an uplink and a downlink channel. The uplink channel has a plurality of frames, such that each frame has a first selectable number of minislots and a second selectable number of slots. When a user has voice traffic that is to be sent, the user sends a reservation request of a first type into a first selected minislot of a selected frame of the uplink channel using a contention-free technique. The reservation request of the first type is for requesting an assignment of at least one slot in at least one frame that is immediately subsequent to the selected frame for transmitting the voice traffic of the user. When a user has data traffic that is to be sent, the user sends a reservation request of a second type into a second selected minislot of the selected frame when such a minislot is available in the selected frame using a contention-based technique. The reservation request of the second type is for requesting an assignment of at least one slot in at least one frame that is subsequent to, but not necessarily immediately after the selected frame, for transmitting the data traffic. The rules for making a contention-based request for transmitting new or previously-colliding reservation requests of the second type by user terminals and for allocating the corresponding uplink channel resources by the central station are governed by a pseudo-Bayesian controlled Aloha algorithm or by a nonobvious blocked-access binary tree algorithm. The central station generates and sends a downlink channel feedback message prior to the end of the selected frame of the uplink channel. The feedback message contains bandwidth assignment information for the next frame of the uplink channel of minislots assigned for reservation requests of the first type, slots assigned to reservations requests of the first type received during the selected frame and, if sufficient bandwidth is available the next frame, minislots assigned for contention-based reservation requests of the second type and/or slots assigned for data traffic corresponding to reservation requests that were successfully sent in the selected frame or a frame prior to the selected frame.

BRIEF DESCRIPTION OF THE DRAWING

The present invention is illustrated by way of example and not limitation in the accompanying figures in which like reference numerals indicate similar elements and in which:

FIG. 1 shows a schematic block diagram of an exemplary wireless environment for which the present invention is suitable;

FIG. 2 shows an arrangement of frames, minislots and slots along a time axis for TDMA-based channels according to the present invention;

FIG. 3 shows an arrangement of frames, minislots and slots along axes for FDMA- and CDMA-based channels according to the present invention;

FIGS. 4 a-4 c show selected reservation and transmission sequences for a speech terminal for a TDMA-based system according to the present invention;

FIG. 5 shows a flow diagram for the selected reservation and transmission sequences of FIGS. 4 a-4 c;

FIGS. 6 a-6 c show a flow diagram for the portion of the centralized-distributed process performed by a central station for assigning minislots and slots to voice and data users according to the protocol of the present invention for voice-data integrated access by self-reservation and stabilized Aloha contention;

FIG. 7 shows a flow diagram for the portion of the centralized-distributed process performed by each voice and each data user for contention-free and contention-based transmission, respectively, according to the protocol of the present invention for voice-data integrated multiaccess by self-reservation and stabilized Aloha contention;

FIG. 8 shows a diagram illustrating a simple blocked-access binary tree contention algorithm;

FIGS. 9 a-9 c show a flow diagram for the portion of the centralized-distributed process performed by a central station for minislot and slot assignment to voice and data users according to the protocol of the present invention for voice-data integrated multiaccess by self-reservation and blocked binary tree resolution.

FIGS. 10 a-10 b show a flow diagram for the portion of the centralized-distributed process performed by each voice and each data user for contention-free and contention-based transmission, respectfully, according to the protocol of the present invention for voice-data integrated multiaccess by self-reservation and blocked binary tree resolution.

DETAILED DESCRIPTION

The present invention provides a MAC protocol that allows dynamic allocation of voice and data packets over the same channel or set of channels, provides silence compression and background imitation for voice, and guarantees a speech transmission delay to within an acceptable threshold, regardless of the data load that may be sharing the same channel(s). Voice data is served using a contention-free reservation technique, while data applications are served on a best-effort basis. Bandwidth resources are not occupied when the data applications are inactive. Additionally, the present invention is Internet protocol (IP) compatible.

Slots are assigned through bandwidth reservation requests, and used for voice traffic transmission during active speech intervals. Minislots are assigned at the end of speech talkspurts and used for background noise transmission during speech silence intervals. An assigned minislot is used, when a voice user becomes active again, for sending a reservation request in a contention-free manner for a slot assignment for timely transmitting the next active speech talkspurt. Silence compression is used for voice traffic, thereby freeing most of the idle bandwidth that would otherwise be occupied by an inactive voice user during speech silence so that it can be used by concurrent data applications, and thereby increasing channel throughput for data users.

A contention-based reservation scheme is used for sending bandwidth reservation requests for data traffic transmission. Such a reservation request is generated by a data user, when the user has new data arrivals for transmission. The decision of whether to send a reservation request in each frame by a data user and of how to allocate the minislots to all data users is based on the pseudo-Bayesian controlled Aloha algorithm or on the nonobvious blocked-access binary tree algorithm. Slots are assigned upon a successful reservation request for data traffic transmission for each data user.

FIG. 1 shows a schematic block diagram of an exemplary wireless environment 10 for which the present invention is suitable. Geographically dispersed user terminals 11 are provided with packet access to a central transceiver, or station, 12 through a common channel 13. In the wireless environment shown in FIG. 1, central station 12 is a base station or an access point. Preferably, there is a separate broadcast channel carrying control and user messages from central station 12 to user terminals 11. Central station 12 is coupled to a telecommunications network 14 in a well-known manner. While system environment is shown as a wireless link in FIG. 1, environment 10 can also be a wireline link, as in a cable plant.

The communication traffic in a direction from a user terminal 11 to central station 12 over common channel 13 is referred to herein as an uplink. A user terminal 11 may generate different types of traffic, or bit streams, simultaneously, provided that generation and transmission of the respectively different types of traffic, such as periodic (voice) or bursty (data), are controlled by separate “terminals” sharing the same user transceiver. A user message consists of speech or/and data packets. Communication traffic in the other direction over common channel 13 from central station 12 to a user terminal 11 provides essential feedback information in a broadcast mode, and is referred to herein as a downlink.

Preferably, central station 12 and user terminals work together to execute a centralized-distributed algorithm, with central station 12 operating in a “master” mode and user terminals 11 operating in a “slave” mode. Central station 12 monitors uplink multiple access activities, including both contention-free and contention-based reservations, and information transmissions from all admitted user terminals 11, and provides channel status feedback via downlink for contending terminals, as well as minislot and slot assignment for terminal reservation and transmission. User terminals 11 monitor to the downlink feedback message broadcast from central station 12 and accordingly transmit their reservation requests and information packets based on the content of the feedback message. Preferably, the uplink and downlink channels are frequency-division duplex (FDD) channels and time-aligned appropriately.

A multiaccess channel may be a single TDMA-type channel having time slots along the time axis. FIG. 2 shows an arrangement 20 of frames 21, minislots 22 and slots 23 along a time axis 24 for TDMA-based channels according to the present invention. A boundary 25 between minislots 22 and slots 23 is preferably dynamically adjustable according to a current traffic mix. Alternatively, boundary 25 can be prescribed a priori based on an expected traffic mix. In either case, minislots 22 and slots 23 are assigned to voice reservation and transmission on a priority basis, and then to data reservation and transmission on a best-effort basis.

A multiaccess channel may also be expanded into a set of FDMA-type channels pooling several frequency bands and thus occupying two dimensions over time and frequency, or into a set of CDMA-type channels formed by both time slots and user codes on a two-dimensional plane as well. FIG. 3 shows an arrangement 30 of frames 31, minislots 32 and slots 33 along axes 34 for FDMA- and CDMA-based channels 36 according to the present invention. In FIG. 3, a frame 31 in each frequency band for an FDMA system, or in each user code for a CDMA system, contains a much smaller number of minislots in comparison to the frame arrangement for a TDMA system, as shown in FIG. 2.

In FIG. 3, a frame 31 for a component of the FDMA or CDMA channels is shown to include only one slot 33, but a frame 31 in the aggregate FDMA or CDMA channels 36 contains as many minislots and slots as a frame arrangement for a TDMA channel. The aggregation of channels functions as a logical shared channel, with the pooled minislots and slots corresponding to the minislots and slots in a single frame in FIG. 2. The frame arrangement in FIG. 3 renders the time scale of a minislot and slot equivalent to that of a slot and frame in FIG. 2, respectively, thereby greatly relaxing synchronization and implementation constraints.

To accommodate the periodic nature of speech and to utilize the server-client layout of the multiaccess channel of the present invention, constant-length frames are used for grouping time slots and minislots so that transmissions in both directions proceed frame by frame, such as shown in FIGS. 2 and 3. Preferably, the length of a frame is longer than the combined round-trip propagation and signal processing time, so that most feedback or control messages are available by the end of the same frame. Further, the length of a frame is preferably not significantly longer than the combined round trip propagation and signal processing time to avoid a large latency. The number and size of slots and minislots in a frame are based on the bit rate of the underlying channel, the intended service of the channel, and implementation constraints. Preferably, a slot contains an integral number of minislots. Minislots are preferably located in the leading portion of a frame, and are convertible to and from slots on a frame-by-frame basis. For an expanded multiaccess channel, a frame encompasses all the pooled frequency bands or user codes. The length of minislots and slots in an expanded multiaccess channel may be much larger than that associated with a segregated TDM channel.

FIGS. 4 a-4 c show selected reservation and transmission sequences for a speech terminal for a TDMA-based system according to the present invention. Time runs from FIG. 4 a through FIG. 4 b and to FIG. 4 c. An ellipsis indicates an indefinite time interval. FIG. 5 shows a flow diagram 500 for the selected reservation and transmission sequences of FIGS. 4 a-4 c.

In FIG. 4 a, the voice user at a speech terminal initiates a call set up at 41 in frame m (step 501 in FIG. 5). Accordingly, at step 502, the voice user is assigned a minislot for transmitting a reservation request and communicated by way of a downlink feedback message. The voice user alternates between speech and silence intervals, as detected in a well-known manner by a voice activity detector (VAD). Accordingly, a talkspurt is generated during the speech interval of the voice user. At step 503, when the voice user generates a talkspurt, flow continues to step 504 where a reservation request is sent to a central station in a minislot 42 (frame m+1), which was assigned when the call was initiated. At step 505, after the central station has received the reservation request, a slot is assigned for transmitting a speech payload packet beginning in the subsequent frame. The central office broadcasts the slot assignment information to the voice terminal in a downlink feedback message before the end of the frame in which the reservation request was received (frame m+1). At step 506, the voice data for the call is then transmitted in the assigned slot (slot 43) in frame m+2 and in the same or a nearby slot over successive frames (i.e., slot 43 in frames subsequent to frame m+2) until the current talkspurt ends at 44 in FIG. 4 b (frame m+p+1). When the VAD determines that the talkspurt is ending at step 507, flow continues to step 508 where the voice terminal inserts a packet containing an end indication message at 45 (frame m+p), otherwise flow returns to step 506. The last packet containing voice data is sent at 44 (frame m+p+1).

The end indication message is sent during the assigned slot of the penultimate frame of the talkspurt (45 in frame m+p) so that there is sufficient time for the central office to process the end indication message, assign a minislot, and for the voice terminal to respond to the subsequent minislot assignment. That is, assigned slot 44 may be located relatively late in a frame and there may be insufficient time for the central station to process an end indication message and for the voice terminal to respond to a minislot assignment by the beginning of the next frame.

In FIG. 4 b, once the central station detects the end indication message at 45 prior to the last voice data packet at 44, central station broadcasts the minislot assignment in the feedback message at step 509, such as minislot 46 in frame m+p+2. Minislot 46 (or a nearby minislot) is assigned to the voice terminal for the call for each of the subsequent frames during the silence interval. The voice user “owns” newly assigned minislot 46 from the frame following the last voice data packet during the silent interval (frame m+p+2) to the end of the silence interval (frame m+p+q+1). At step 510, it is determined whether the call should be terminated or continued. When the call should be continued, flow continues to step to 511 where noise compression information for the voice terminal is transmitted in the assigned minislot in each subsequent frame. Preferably, current noise compression information is transmitted in each respective minislot so that changes in ambient noise level at the voice terminal are reflected at the call destination and a suitable comfort noise is injected into the synthesized speech at the listener receiver. Alternatively, the noise compression information can be updated much less frequently than every minislot, if it cannot be fully transmitted in a single minislot.

In FIG. 4 c, when the silence interval ends (step 503) and a speech packet for a talkspurt arrives during frame m+p+q, as detected by the VAD, the assigned minislot is used at 47 (frame m+p+q+1) for sending a message to the central station indicating arrival of a new active speech packet. The central station responds by allocating a slot 48 (frame m+p+q+2) for the speech transmission over the subsequent frames spanning the new talkspurt. The slot assignment is broadcast by the central office in the feedback message. The previously assigned minislot (minislot 46) is deallocated concomitantly from the user voice terminal. Alternating use of slots and minislots then repeats in response to talkspurts and silence intervals, as described above, until the call is completed, in which case, the call is disconnected at step 512.

When the VAD detects a silence interval lasting at least three frames, allocation of a minislot to the inactive speaker limits the delay for transmitting the next active speech packet to between one to three frames. In the situation when the number of admitted voice calls does not exceed the number of slots in a frame (i.e., less than the channel capacity as measured by circuit switching), each voice user occupies either a slot or a minislot at any given time during the duration of the voice user's call. If the frame size is not greater than, for example, 10 ms, the access delay does not become excessive and no speech clipping occurs. In contrast to contention-based protocols, the contention-free speech access of the present invention simultaneously achieves delay bounding, silence compression and background imitation.

According to the present invention, a significant portion of the channel bandwidth can be shared with data traffic during speech silence intervals without jeopardizing speech transmission. That is, the bandwidth resource freed by silence compression can be made available to data sources. Consequently, the basic channel structure shown in FIGS. 2 and 3 is assumed to anticipate the presence of data traffic, with voice traffic taking precedence over data traffic for channel access priority. Preferably, the present invention uses a contention-based reservation technique for sending reservation requests into minislots that are used for requesting slots for data transmission during data active intervals.

To illustrate the shared bandwidth aspect of the present invention, speech traffic statistics for a speech source are first analyzed. As has been often previously done, the alternating active and inactive periods of the speech source can be modeled using independent exponential distributions, and the corresponding probability density functions can be written as ƒ_(A)(t _(A))=(1/T _(A))exp(−t _(A) /T _(A)), t_(A)≧0,  (1) ƒ_(I)(t _(I))=(1/T _(I))exp(−t _(I) /T _(I)), t_(I)≧0,  (2) where T_(A) and T_(I) are the means for active and inactive talk periods, respectively. Accordingly, the number of speech packets generated in an active period is distributed by

$\begin{matrix} {{{p_{A}\left( n_{A} \right)} = {{\int_{{({n_{A} - 2})}^{F}}^{{({n_{A} - 1})}F}{{f_{A}\left( t_{A} \right)}\ {\mathbb{d}t_{A}}}} = {\left( {1 - {\mathbb{e}}^{{- 1}/{\overset{\_}{T}}_{A}}} \right){\mathbb{e}}^{{- {({n_{A} - 2})}}{\overset{\_}{T}}_{A}}}}},{{\overset{\_}{T}}_{A} = {T_{A}/F}},{n_{A}\underset{\_}{>}2.}} & (3) \end{matrix}$ Similarly, the number of packets declared by a VAD to be inactive over a silence period is distributed by

$\begin{matrix} {{{p_{I}\left( n_{I} \right)} = {{\int_{{({n_{I} + 1})}F}^{{({n_{I} + 2})}F}{{f_{I}\left( {t_{I}❘{t_{I}\underset{\_}{>}{3F}}} \right)}\ {\mathbb{d}t_{I}}}} = {\left( {1 - {\mathbb{e}}^{{- I}/{\overset{\_}{T}}_{I}}} \right){\mathbb{e}}^{{- {({n_{I} - 2})}}{\overset{\_}{T}}_{I}}}}},{{\overset{\_}{T}}_{I} = {T_{I}/F}},{n_{I}\underset{\_}{>}2},} & (4) \end{matrix}$ where F in both Eqs. (3) and (4) denotes the frame length. Thus, the expected number of packets classified as active or inactive by the VAD is given by

$\begin{matrix} {{{\hat{n}}_{z} = {{\sum\limits_{n_{z} = 2}^{\infty}\;{n_{z}{p_{z}\left( n_{z} \right)}}} = {2 + {1/\left( {e^{1/{\overset{\_}{T}}_{z}} - 1} \right)}}}},{z = A},{I.}} & (5) \end{matrix}$ By virtue of ergodicity, that is, based on the renewal nature of alternating, independent active and inactive periods, the average number of active and inactive packets N _(A) and N _(I), respectively, that are observable at any given time out of a total number of N_(V) voice calls admitted into the multiaccess channel under consideration is specified as

$\begin{matrix} {{\frac{{\overset{\_}{N}}_{A}}{N_{V}} = \frac{{\hat{n}}_{A}}{{\hat{n}}_{A} + {\hat{n}}_{I}}},{\frac{{\overset{\_}{N}}_{I}}{N_{V}} = {\frac{{\hat{n}}_{I}}{{\hat{n}}_{A} + {\hat{n}}_{I}}.}}} & (6) \end{matrix}$ As described above, the speech access protocol of the present invention operates by respectively sending active and inactive packets in slots and minislots on a frame-by-frame basis. By design, N_(V)≦N_(F). Thus, N _(A) and N _(I) also represent the average number of slots and minislots, respectively, occupied by N_(V) voice calls in a given frame. Consequently, if a slot is m_(r) times larger a minislot, a voice call will on average occupy g_(V)=({circumflex over (n)}_(A)+{circumflex over (n)}_(I)/m_(r))/({circumflex over (n)}_(A)+{circumflex over (n)}_(I)) of a slot per frame during the duration of the call. For a voice activity factor of 0.4 and for m_(r)=5, g_(V) is approximately 0.52. Moreover, out of a total of N_(F) slots per frame and N_(V) voice calls, a maximum of N_(V) ⁻−N_(F)−( N _(A)+ N _(I)/m_(r)) slots may be freed for data transmission, thereby yielding a normalized residual capacity λ_(V) ⁻−N_(V) ⁻/N_(F).

To serve the bursty nature of data sources, data transmission is predicated upon a random-access reservation. The minislots in each frame that are unused by voice calls are made available for reservation requests for data messages that have arrived at user data terminals and are waiting transmission to the central station. Each successful reservation is entered into a transmission queue that is maintained at the central station. The central station then allocates slots in one or more of the subsequent frames based on a first-come-first-served (FCFS) policy, or another service priority policy (if any), for the exclusive transmission of a data message corresponding to a reservation requesting the transmission. If a minislot used for data reservations is not located sufficiently near to the beginning of a frame, the feedback message relating to the contention status of the minislot (i.e., collision or not) will not be available in the subsequent frame, but will be one frame later. A successful reservation is entered into the central transmission queue in the same delay fashion. Before a data message is transmitted, however, a host terminal (more precisely, the MAC controller inside the host terminal) will not send out another message. The boundary between minislots and slots can be adjusted on a frame-by-frame basis so that new messages promptly secure reservation requests, and that reserved requests promptly transmit their associated messages.

The reservation-transmission (R-T) boundary separating minislots and slots is adjusted from frame to frame so that the overall access delay, that is, the average time for successful reservation plus waiting time for message transmission, is minimized. One suboptimal policy used by the central station for determining and broadcasting the number of minislots and slots, N_(R) and N_(T), respectively, for data reservation and transmission in the next frame is based on the reception of the reservations and transmissions from all the user terminals in the previous frame.

For example, suppose that only the minislots located in the first N₁ slots of a given frame are processed by a central station and have their status feedback available by the end of the same frame. The remaining minislots N₂−N_(F)−N₁, if any, are processed by the central station and corresponding status feedback is provided in one later frame. Thus, given q data reservations entered in the central transmission queue that are yet to be served, the next frame will have N _(R) =m _(r)(N _(F) −N _(A) −N _(T))−N _(I),  (7) where if q≦N₂ or q−N_(TM)>N₂−N_(A), with N_(TM)=N_(F)−N_(A)−┌N_(I)/m_(r)┐, then N _(T)=min(q,N _(TM)),  (7a) or else, with N_(R)′=m_(r)min(N₁, N_(F)−N_(A))−N_(I), then N _(T)=min(q,N _(F) −N _(A)−(N _(I) +N _(R)′)m _(r)).  (7b) Here, N_(A) and N_(I) respectively denote the number of slots and minislots that will be used by the admitted voice calls in the next frame. N_(A) and N_(I) will be known to the central station before the feedback message for the next frame is broadcast. N_(TM) specifies the maximum number of slots that may be assigned to data transmission in the next frame accounting for the current speech load. Equation (7a) therefore implies that if the size of the current transmission queue is relatively small or large with respect to the value of N₂, the queue will be served to the extent of the next available slots. Equation (7b) applies to a moderate queue size, which is used to preclude reservation requests from being sent into the last N₂ slots of the next frame.

After the data transmission slots have been allocated, all the remaining slots are converted into minislots for data reservation so that no slots are wasted in any given frame. Nevertheless, the appearance of N₁ and N₂ in Eqs. (7a) and (7b) reflects a constrained effort to make data users send reservations in only the first N₁ slots in any given frame so that their respective reservation status is timely reflected in the subsequent frame. If reservation requests were indeed sent in minislots such that the status feedback message is not available by the end of the same frame, the terminals sending reservations into those particular minislots resume their appropriate action after one intervening frame based on the feedback message corresponding to the next frame.

Adaptive adjustment of the R-T boundary on a frame-by-frame basis enables voice loaded multiaccess channel to provide data throughput approaching the maximum limit. The maximum data throughput T_(max) in packets per slot may be determined from the equations of equilibrium governing data reservation and transmission, S_(max) N _(R)= N _(T)=T_(max)N_(F), where S_(max)=1/e is the maximum throughput of an Aloha protocol used for reservation and S_(max)=0.4285356 is the maximum throughput of a nonobvious blocked-access basic binary tree protocol used for reservation. N _(R) and N _(T) are, respectively, the average numbers of minislots and slots allocated to data users per frame in the equilibrium state. Thus, upon invoking the relationship N_(F)=( N _(I)+ N _(R))/m_(r)+( N _(A)+ N _(T)) at maximum throughput,

$\begin{matrix} {T_{\max} = {\frac{{\left( {N_{F} - {\overset{\_}{N}}_{A}} \right)m_{r}} - {\overset{\_}{N}}_{I}}{N_{F}{m_{r}\left( {1 + {{1/m_{r}}S_{\max}}} \right)}}.}} & (8) \end{matrix}$ In the absence of voice calls (i.e., N _(A)= N _(I)=0), T_(max)=1/(1+1/m_(r)S_(max)), which is exactly the maximum data throughput of a reservation channel.

For the pseudo-Bayesian control, a terminal is considered to be backlogged as soon as the terminal receives a new message. All contention attempts are performed based on the (approximate) knowledge of the channel backlog at the start of each slot (frame), thereby maximizing successful transmissions (reservations) slot by slot (frame by frame). In its primitive form for a (non-reservation) slotted channel, pseudo-Bayesian controlled Aloha requires backlogged terminals, i.e., terminals having a packet to send, to transmit independently with probability p=min(1,1/n₊), where n₊ is the estimated backlog at the beginning of each slot and may be updated successively from the value n⁻ at the last slot. Thus,

$\begin{matrix} {n_{+} = \left\{ \begin{matrix} {{\lambda + {\max\left( {0,{{n\_} - 1}} \right)}},\mspace{14mu}{{for}\mspace{14mu}{{idle}/{success}}\mspace{14mu}{in}\mspace{14mu}{last}\mspace{14mu}{slot}},} \\ {{\lambda + {n\_} + \left( {e - 2} \right)^{- 1}},\mspace{14mu}{{for}\mspace{14mu}{collision}\mspace{14mu}{in}\mspace{14mu}{last}\mspace{14mu}{{slot}.}}} \end{matrix} \right.} & (9) \end{matrix}$ In Eq. (9), λ accounts for new packet arrivals per slot. It has been found that setting λ=1/e , the maximum Aloha throughput, results in no appreciable performance difference. Under such control, as long as the arrival rate is less than the maximum throughput, the protocol remains stable, and no message will be dropped due to repeated collisions.

For a framed, reservation-based voice-loaded multiaccess channel having a pseudo-Bayesian Aloha control for data access according to the present invention, an R-T bandwidth allocation scheme, similar to that defined using Eqs. (7), (7a) and (7b), is described first. The only exception for the present invention is in connection with Eq. 7(b) by the introduction of N_(R)′ instead of N_(R). Accordingly, N_(R)′ is defined to be N_(R)′=m_(r)min(N₁, N_(F)−N_(A), N_(D))−N_(I), where N_(D)=┌(N_(I)+N₊)/m_(r)┐, and N₊ is the current estimated backlog of data messages pending reservation. N₊ is updated over each frame in conjunction with the operation of the algorithm. In view of Eqs. (7) and (7b), the purpose for introducing N_(D) is for allocating as many minislots for data reservations in the next frame for data messages not yet securing a reservation for moderate transmission queue sizes.

For convenience in describing the preferred contention-based algorithms of the present invention, each data message consists of only one packet that requires only one slot for transmission. Thus, the following contention-based algorithms for data traffic illustrate a most conservative reservation-based data transmission protocol, that is, a packet-by-packet contention scheme. Such a packet-by-packet-based protocol provides a lower-bound performance of practical protocols that allow multislot transmission per successful contention by, for example, initial bandwidth reservation or/and by piggybacking requests for additional bandwidth during message transmission.

FIGS. 6 a-6 c show a flow diagram 600 for the portion of the centralized-distributed process performed by a central station for assigning minislots and slots to voice and data users according to the protocol of the present invention for voice-data integrated access by self-reservation and stabilized Aloha contention.

At step 601 in FIG. 6, the central station receives uplink signals in the minislots and slots of a current frame. At step 602, based on the contents of the voice traffic minislots received in the current frame, the central station identifies each voice user who was previously silent and is now requesting one or more speech traffic slots in the next frame. At step 603, based on the contents of the voice traffic slots received in the current frame, the central station identifies each voice user who was previously talking, but is now silent and has released one or more speech traffic slots. At step 604, the central station identifies each voice user who has indicated that their talkspurt will end during the next frame. At step 605, the central station identifies each continuously-silent and each continuously-talking voice user respectively occupying a voice minislot and one or more voice traffic slots. At step 606, the central station identifies each data user requesting a data slot by way of a reservation request successfully sent by contention in the current frame. At step 607, the central station separately identifies each minislot that was allocated in the current frame for data reservation that experienced an idle, a success, or a collision. A minislot that was idle is an allocated minislot in which no data reservation request was sent. A minislot that was a success is an allocated minislot in which only one data reservation request was sent. A minislot that was a collision is a minislot in which more than one data reservation request was sent. The central station processes minislots that were a success and acknowledges receipt of the reservation request in the feedback message that is broadcast at the end of the current frame, as described below.

At step 608, the central station determines the R-T boundary between minislots and slots for the next frame. At step 609, at least one slot in the next frame is assigned to each continuously-talking and to each newly-talking user. At step 610, a minislot in the next frame is assigned to each continuously-silent and to each newly-silent voice user. At step 611, if slots in the next frame are available, a slot in the next frame is assigned to each data user that successfully sent a reservation request in the current frame or in a previous frame, but still has data to send. At step 612, minislots in the next frame that are available for data users to send reservation requests are determined and allocated.

At step 613, the permission probability is determined for data users having a reservation request to send in the minislots allocated as available for data users as p=min(1, N_(R)/N₊), where N_(R) is the number of allocated minislots and N₊ is the estimated number of current data users having a reservation request to send, i.e., backlogged. The current backlog N₊ is re-estimated at the central station based on the backlog N⁻ and the number of minislots assigned for data reservations N_(R−) in the previous frame. To do this, the central station takes into account the number of non-collision n_(u) and collision minislots n_(c) that occurred in the last frame. Thus,

$\begin{matrix} {N_{+} = {\lambda_{F} + {n_{u}{\max\left( {0,{\frac{N\_}{N_{R -}} - 1}} \right)}} + {{n_{c}\left( {\frac{N\_}{N_{R -}} + \frac{1}{e - 2}} \right)}.}}} & (10) \end{matrix}$ Here, the term “non-collision” means the transmission of zero or one reservation request into a minislot, and the term “collision” means the transmission of more than one reservation request into the same minislot. In Eq. (10), λ_(F) designates new message arrivals per frame and, analogously with Eq. (9), may be set to be the maximum value sustainable over the next frame. In view of Eq. (8), AF is selected to be λ_(F)=S_(max)[(N_(F)−N_(A))m_(r)−N_(I)]/(1+m_(r)S_(max)), with S_(max)=1/e. In deriving Eq. (10) from Eq. (9), a Poisson distribution for the overall backlog has been assumed, which, if independently routed to k minislots in a random fashion, becomes k sub-backlogs that are independently, identically distributed (i.i.d.) according to Poisson having a mean scaled down by a factor of k. Accordingly, the mean is approximated by the estimate.

If no minislots were available for data reservation during the current frame, that is, all minislots were allocated to silent voice users, only the new data message arrivals are used for updating the backlog for the current frame, viz., N₊=λ_(F)+N⁻. If a minislot used for data reservation in the current frame cannot have feedback available by the end of the current frame because of the relative lateness of the minislot in the current frame, the backlog associated with that particular minislot, as well as the successful reservation (if one) out of that minislot, will not be reflected in the next frame, but is reflected in the frame after the next frame. The “partial” backlog based on the relatively-late minislots may be estimated separately by associating n_(u) and n_(c), appearing in Eq. (10), with the relatively late minislots only. A terminal that contends in a relatively late minislot knows of the relative lateness of the minislot either by a priori convention or by suitable indication in the feedback message. If a terminal contends in a relatively late minislot, the terminal refrains from further action during the next frame and waits for the feedback message for the next frame.

The maximum voice-loaded data throughput is the same as given in Eq. (8). The multiaccess channel will have guaranteed stability provided the data arrival rate is below the throughput limit.

At step 614, the information relating to data users that successfully sent a reservation request by contention is broadcast by the central station in a downlink feedback message. Additionally, information relating to minislot and slot assignment for both voice and data users, as well as permission probability p are broadcast in the feedback message. Minislots and slots are assigned to voice users on an individual basis for contention-free transmission into them. Slots are also individually assigned to data users for contention-free transmission, but minislots are collectively assigned to data users for contention-based transmission.

FIG. 7 shows a flow diagram 700 for the portion of the centralized-distributed process performed by each voice and data user for contention-free and contention-based transmission, respectively, according to the protocol of the present invention for voice-data integrated multiaccess by self-reservation and stabilized Aloha contention.

In FIG. 7, each voice user and data user monitors the downlink feedback message broadcast by the central station and at step 701, each voice user who was silent, but is beginning to talk, sends a reservation request into the minislot assigned to the voice user. At step 702, each voice user that detects the end of a current talkspurt piggybacks an end of talkspurt indication message into the penultimate talkspurt packet and sends the voice traffic packet with the piggybacked end of talkspurt indication in the slot assigned to the voice user. At step 703, each newly-silent and each continuously-silent voice user sends background noise information into the minislot assigned to the user. At step 704, each continuously-talking voice user sends a speech packet into the voice traffic slot assigned to the user. At step 705, each data user that sent a reservation request in the last frame determines whether it belongs to the list of successful contenders based on the information in the downlink feedback message or whether the reservation request must be resent. At step 706, each data user that has data to send, but has not successfully sent a reservation request, independently chooses at random any one of the minislots indicated in the feedback message as allocated for data reservation and sends a reservation request into the selected minislot with permission probability p. At step 707, each data user that has successfully sent a reservation request, but has not sent its buffered data, sends its data into the slots assigned to the data user, if any slots were assigned. When the data user has not received a slot assignment by way of the feedback message, the data user takes no action.

The second preferred random access (contention-based) reservation scheme for data is based on a non-obvious blocked-access basic binary tree algorithm, which provides a good tradeoff with respect to performance, complexity, and robustness. In its basic operation on a single slotted channel, collision is resolved by statistically dividing a group of colliding terminals into two subgroups, which then contend separately to transmit their respective data packets as follows.

FIG. 8 shows a diagram illustrating a simple non-obvious blocked-access basic binary tree contention algorithm. In FIG. 8, horizontal axis 81 represents data arrival time, with allocation intervals AI indicated below axis 81 and transmission slots 82 indicated above axis 81. Allocation intervals AI are used for determining whether a data terminal can send a data packet that has arrived, and time slots 82 are used for sending data packets to, for example, a central station. Each allocation interval AI and each time slot 82 have a predetermined duration that is fixed. Although allocation intervals AI and time slots 82 are shown in FIG. 8 as having coinciding time boundaries and intervals, such a requirement is not necessary and may not be desirable. Moreover, only two allocation intervals and two time slots are shown in FIG. 8 for clarity.

In FIG. 8, a first allocation interval AI₁ is defined between times T₁ and T₂ and a second allocation interval AI₂ is defined between times T₂ and T₃. Each data terminal having a data packet arriving during allocation interval AI₁ sends their data packet during time slot 82 a. Each data terminal having a data packet arriving after T₂ is in a waiting interval waiting on the outcome of the contention on time slot 82 a. Thus, each data packet arriving after allocation interval AI₁ is blocked from transmission. The sequential arrangement of allocation intervals AI₁ and AI₂ creates a virtual stack. Each data terminal having a data packet arriving during allocation interval AI₁ occupies the top level of the stack and each data terminal having a data packet arriving during allocation interval AI₂ occupies the next level down in the stack. Of course, there can be multiple allocation intervals, i.e., multiple levels the virtual stack.

If no or only one data terminal sends a data packet into time slot 82 a, then there is no collision. (Assume, for purposes of this example, that the central station provides a feedback message so that each data terminal can monitor the channel status of each slot.) When no packets collide, the top level of the stack is removed and each level of the virtual stack is raised, or moved upward, towards the top of the stack by one level.

If two or more data terminals send a data packet in time slot 82 a, the packets will collide and the central station will not receive any of the data packets. Upon learning that there was a collision, each of the data terminals that sent a packet in time slot 82 a, i.e., data terminals occupying the top level of the stack randomly selects a 0 or a 1 with equal probability, and each data terminal in a waiting interval lowers their respective level in the stack by one level. Each colliding data terminal that selected a 0 remains at the top level of the stack and resends the data packet in time slot 82 b, while each colliding data terminal that selected a 1 lowers its level in the stack by one level to occupy the next to the top level of the stack. All terminals then wait the outcome of time slot 82 b. If there is no collision in time slot 82 b, then each data terminal occupying a level in the stack raises its level by one. Data terminals occupying an updated top level after a “no collision” event would send their data packet during the next time slot. If there is a collision during time slot 82 b, then the colliding terminals randomly select a 0 or a 1 with equal probability. Each colliding terminal selecting a 0 stays on the top level of the stack and sends its data packet in the next time slot. Each colliding terminal selecting a 1 lowers its level in the stack by one level, as does all other terminals at lower levels in the stack waiting to send a data packet. The process continues with data terminals having newly arriving data packets in later and later allocation intervals occupying lower and lower levels of the stack.

The allocation interval size Δ may be chosen for maximizing channel throughput. For Poisson traffic, the channel attains a maximal throughput of S_(max)=0.4285356 packets per slot when S_(max)Δ=1.035758 packets, i.e., when Δ=2.4169705 slots. As long as the arrival rate (in packets per slot) is below S_(max), the channel will be stable.

Preferably, the blocked-access binary tree contention process utilized by the present invention applies to data terminals sending reservation requests into minislots of a framed channel for obtaining a slot assignment for sending a data message. According to this aspect of the invention, the number of minislots available in the next frame is dynamically determined by the central station and communicated in the feedback message. A contending terminal monitors the feedback message and determines whether its reservation request will be (re)transmitted in a minislot in the next frame based on the outcome of the contention on the data minislots in the last frame and the update of allocation intervals as well as the availability of data minislots in the next frame. Any number of minislots can be available for reservation requests, including the situation when no minislots are available. When no minislots are available, all contending terminals wait until available minislots are indicated by the feedback message. Moreover, available minislots used for sending reservation requests do not need to be consecutively adjacent to each other in a frame, but merely need to be identified so that contending terminals can determine which minislot(s) is (are) available.

The availability of multiple minislots in a given frame also allows for parallel operation of several allocation intervals and for parallel resolution within individual allocation intervals. New groups of terminals in a reservation waiting set may be accepted for contention when additional minislots are available while existing groups or subgroups undergo collision resolution. The allocation length on the arrival time axis of each new group for the reservation system δ can be optimized for maximum system throughput, which is attained at T_(max)δ=1.035758 packets, where T_(max) is given as in Eq. (8) in terms of packets per slot with S_(max)=0.4285356. Thus, δ is selected to be δ=1.035758/T_(max) slots, or equivalently, δ=1.035758/N_(F)T_(max) frames, where N_(F) denotes the size of a frame in slot units. A separate virtual stack is established based on allocation intervals for tracking the order of contention of terminals having messages to transmit but have not successfully sent a reservation request.

The tree algorithm operates in conjunction with an R/T policy as follows. Suppose the central station has just processed the minislots located in the first N₁ slots of the last frame, with minislots located in the remaining N₂ slots (if any) being processed in the next frame because of feedback delay considerations. Also, suppose that the central station has determined that there are now q reservations in the transmission queue yet to be given transmission slots (waiting period) and that there are c subgroups of terminals pending the collision resolution of their reservation requests in the next frame. The central station then removes the groups (or subgroups) that did not experience collision in the last frame from the stack and the levels of the remaining groups advance accordingly. The central station also calculates the number of minislots and slots for data reservation and transmission, N_(R) and N_(T), respectively, in the next frame according to Eqs. (7), (7a) and (7b), where N_(R)′=m_(r)min(N₁,N_(F)−N_(A), N_(D))−N_(I), N_(D)=┌(N_(I)+N₊)/m_(r)┐, N₊=c+└(t_(ƒ)−t_(b−))/δ┘, in which t_(ƒ) denotes the start time of the next frame, and t_(b−) denotes the last blocking point on the message arrival time axis.

As for pseudo-Bayesian controlled Aloha, N₊ is an estimate of the pending message reservations in terms of next contention subgroups. The introduction of N_(D) again attempts to match the number of minislots for next data reservation with that of data messages yet to obtain a reservation for moderately sized transmission queues. If N_(R)>c, new allocation intervals can be opened from the waiting set (for reservation), thus advancing the next blocking point to t_(b)+=min(t_(ƒ),t_(b)+δ(N_(R)−c)).

Upon receiving the feedback message from the central station, data terminals having unsuccessful reservations update their respective positions in the virtual stack maintained locally based on the announced number of colliding and non-colliding groups of terminals that sent reservation requests into minislots in the last frame. The update by all the backlogged terminals brings the number of total new resolution-pending subgroups to c.

In the case where N_(R)>c, all updated subgroups send their respective reservation requests into their corresponding minislots out of the N_(R) minislots assigned for the next data reservation. The correspondence is the link of the order of the subgroup positions in the virtual stack to the order of the announced minislots. Terminals that had message arrivals after the previous blocking point t_(b−), but before the new blocking point t_(b+), send their reservation requests independently into any one of the N_(R)−c minislots set aside for new reservations. The position of the minislots chosen determines their associated groups and, hence, their respective levels in the virtual stack, which already contained c levels of subgroups. On the other hand, when N_(R)<c, no new reservation requests will be initiated, and only N_(R) of the c subgroups that are located in the first N_(R) levels in the virtual stack contend for a data reservation in the next frame. The remaining subgroups wait for their reservation opportunities in subsequent frames. The process thus repeats from one frame to the next.

If data reservations used minislots belonging to the last N₂ slots of a given frame, their reservation status will be reflected, not in the next frame, but one frame later. Accordingly, the central station does not account for the contending groups of terminals using the relatively late minislots, nor will the contending groups of terminals take any action themselves until one frame later.

Finally, the maximum data throughput of the multiaccess channel at a given voice load is given as in Eq. (8), with S_(max)=0.4285356, for the non-obvious blocked-access basic binary tree algorithm as used for data reservation according to the present invention.

FIGS. 9 a-9 c show a flow diagram 900 for the portion of the centralized-distributed process performed by a central station for minislot and slot assignment to voice and data users according to the protocol of the present invention for voice-data integrated multiaccess by self-reservation and blocked binary tree resolution.

At step 901 in FIG. 9, the central station receives uplink signals in the minislots and slots of a current frame. At step 902, based on the contents of the voice traffic minislots received in the current frame, the central station identifies each voice user who was previously silent and is now requesting one or more speech traffic slots in the next frame. At step 903, based on the contents of the voice traffic slots received in the current frame, the central station identifies each voice user who was previously talking, but is now silent and has released one or more speech traffic slots. At step 904, the central station identifies each voice user who has indicated that their talkspurt will end during the next frame. At step 905, the central station identifies each continuously-silent and each continuously-talking voice user respectively occupying a voice minislot and one or more voice traffic slots. At step 906, the central station identifies each data user requesting a data slot by way of a reservation request successfully-sent by contention in the current frame. At step 907, the central station separately identifies each minislot that was allocated in the current frame for data reservation that experienced an idle, a success, or a collision. The central station processes minislots that were a success and acknowledges receipt of the reservation request in the feedback message that is broadcast at the end of the current frame, as described below.

At step 908, the central station determines the R-T boundary between minislots and slots for the next frame. At step 909, at least one slot in the next frame is assigned to each continuously-talking and to each newly-talking user. At step 910, a minislot in the next frame is assigned to each continuously-silent and to each newly-silent voice user. At step 911, if slots in the next frame are available, a slot in the next frame is assigned to each data user that successfully sent a reservation request in the current frame or in a previous frame, but still has data to send. At step 912, minislots in the next frame that are available for data users to send reservation requests are determined and allocated.

At step 913, the central station updates the number of contention subgroups of data users in the virtual stack as c=c⁻−n_(idle)−n_(success)+n_(collision), where c⁻ is the number of contention subgroups in the last frame, and n_(idle), n_(success), and n_(collision) are the number of minislots assigned for data reservation in last frame that experienced an idle, a success, or a collision, respectively, as described above. Conceptually, the contention subgroups are each located in a level of a stack. The occurrence of an idle or success minislot removes the contention subgroup that was assigned to that minislot out of the stack, thus moving each subgroup that was located below the removed subgroup up in the stack. The occurrence of a collision minislot statistically splits the particular contention subgroup that was assigned to that minislot into two subgroups, with one subgroup remaining at the original level and the other subgroup being located one level below. As a result, each subgroup that was located below the split subgroup will be lowered one additional level in the stack.

At step 914, if N_(R)<c, the central station assigns a minislot out of the N_(R) minislots allocated for data users to each of the N_(R) contention subgroups located at the top of the updated stack. If, at step 914, N_(R)>c, the central station advances the allocation time (i.e., the blocking point) to t_(b+)=min(t_(ƒ),t_(b−)+δ(N_(R)−c)), where t_(ƒ) denotes the start time of the next frame, t_(b+) denotes the previous allocation time on the message arrival time axis, and δ=1.035758/T_(max) slots, with T_(max) defined in Eq. (8). By advancing the allocation time, the central station statistically divides the users having data arriving between the old allocation time t_(b−) and the new allocation time t_(b+) into n_(new)=N_(R)−c subgroups. The central station further appends these subgroups in the stack, with each subgroup occupying a level. The central station then assigns a minislot out of the N_(R) minislots allocated for data users to each of the N_(R) contention subgroups contained in the updated stack.

At step 915, the information relating to data users that successfully sent a reservation request by contention is broadcast by the central station in a downlink feedback message. Additionally, information relating to minislot and slot assignment for both voice and data users, as well as allocation time t_(b+) and the number of new contention subgroups n_(new) are broadcast in the feedback message. Minislots and slots are assigned to voice users on an individual basis for contention-free transmission into them. Slots are also individually assigned to data users for contention-free transmission, but minislots are collectively assigned to data users of the same contention subgroups for contention-based transmission.

FIGS. 10 a-10 b show a flow diagram 1000 for the portion of the centralized-distributed process performed by each voice and each data user for contention-free and contention-based transmission, respectfully, according to the protocol of the present invention for voice-data integrated multiaccess by self-reservation and blocked binary tree resolution.

In FIG. 10, each voice user and data user monitors the downlink feedback message broadcast by the central station and at step 1001, each voice user who was silent, but is beginning to talk, sends a reservation request into the minislot assigned to the voice user. At step 1002, each voice user that detects the end of a current talkspurt piggybacks an end of talkspurt indication message into the penultimate talkspurt packet and sends the voice traffic packet with the piggybacked end of talkspurt indication in the slot assigned to the voice user. At step 1003, each newly-silent and each continuously-silent voice user sends background noise information into the minislot assigned to the user. At step 1004, each continuously-talking voice user sends a speech packet into the voice traffic slot assigned to the user. At step 1005 each data user that sent a reservation request in last frame determines whether it belongs to the list of successful contenders based on the information in the downlink feedback message or whether the reservation request must be resent.

At step 1006, each data user of existing contention groups that unsuccessfully sent a reservation request in last frame statistically splits each such contention group into two subgroups. Then, the data users of statistically split new subgroups send a reservation request into respective minislots that were assigned to the updated contention subgroups, if any minislots were allocated and assigned. If no minislots were allocated for new contention subgroups, the allocation time remains unchanged and each data user with data arrival time>allocation time is prohibited from sending a reservation request into any minislot.

At step 1007, each data user that has data to send, but has been prohibited from sending a reservation request statistically splits into n_(new) contention subgroups if t_(b+)>its data arrival time. These particular data users then each independently choose, with equal probability, any one of the minislots assigned to the n_(new) contention subgroups and send a reservation request into their respective chosen minislots. Otherwise, these particular data users take no action.

At step 1008, each data user that has successfully sent a reservation request messages in a previous frame other than the immediately preceding frame, but were not assigned minislots for retry in last frame, now send a reservation request message into any minislots assigned to their contention subgroups, if any such minislots were available and allocated. Otherwise, these particular data users take no action.

Although the present invention has been described in terms of voice traffic having priority over data traffic, the present invention is not so limited. In actuality, the present invention is applicable to any type of communication traffic that has priority over another type of communication traffic. For example, access to a communication channel can be controlled for data traffic having a relatively high level of service priority based on the contention-free aspect of the present invention, and access to the channel for data traffic having a relatively lower level of service priority can be controlled based on the contention-based aspect of the present invention.

While the present invention has been described in connection with the illustrated embodiments, it will be appreciated and understood that modifications may be made without departing from the true spirit and scope of the invention. 

1. A method comprising: responsive to a first reservation request, via a downlink channel, broadcasting information regarding an assignment of a first slot of a plurality of slots to transmit voice traffic, the plurality of slots transmitted via an uplink channel, the first reservation request adapted to cause a contention-free reservation of the first slot; and via the downlink channel, broadcasting information regarding a reassignment of a second slot of the plurality of slots to transmit data traffic, the second slot previously assigned to transmit voice traffic, the data traffic assigned to the second slot based on a blocked binary tree algorithm; via the uplink channel, receiving a second reservation request for an assigned data slot; and making a determination that a virtual stack level associated with the second reservation request for the assigned data slot has a smaller value than the a number of minislots available for sending reservation requests for data slots, a first data terminal having a packet that arrives during a first allocation interval adapted to occupy a top level of the virtual stack, a second data terminal having a packet that arrives during a second allocation interval adapted to occupy a next level down from the top level of the virtual stack, the second allocation interval subsequent to the first allocation interval, responsive to a detected collision at the top level of the virtual stack, the first data terminal adapted to randomly select a 0 or a 1 with equal probability, responsive to selection of the 0, the first data terminal adapted to remain at the top level of the virtual stack, responsive to selection of the 1, the first data terminal adapted to occupy the next level down from the top level of the virtual stack.
 2. The method of claim 1, further comprising: receiving the first reservation request in a first selected minislot of a first frame of a plurality of frames transmitted via the uplink channel, each frame of the plurality of frames comprising a variable number of minislots and a variable number of slots, a number of slots in a second frame a lesser of a number of reservations in a transmission queue that have not been given slots in the first frame and a maximum number of slots assignable in the second frame for a current speech load.
 3. The method of claim 1, further comprising: receiving information indicating that a first frame transmitted via the uplink channel comprises voice traffic in the first slot, responsive to a determination of a number of reservations in a transmission queue that have not been given slots in the first frame of a plurality of frames transmitted via the uplink channel, a central station adapted to change a location of a reservation-transmission boundary separating minislots and slots in a second frame of the plurality of frames transmitted via the uplink channel.
 4. The method of claim 1, wherein the second slot is reassigned to data traffic during a period of speech silence in voice traffic.
 5. The method of claim 1, further comprising: responsive to a determination of an end of a speech talkspurt in voice traffic, broadcasting information regarding an assignment of a minislot to carry the voice traffic, the minislot adapted to transmit at least one of silence compression and background imitation during speech silence in the voice traffic, responsive to a determination that a voice user is active again, the minislot adapted to receive a reservation request for a slot assignment to timely transmit a next active talkspurt of the voice traffic.
 6. The method of claim 1, further comprising: responsive to a second reservation request, broadcasting information regarding an assignment of a third slot to transmit data traffic, the data traffic assigned to the third slot based on the blocked binary tree algorithm.
 7. The method of claim 1, further comprising: before an end of a frame comprising the first reservation request, via the downlink channel, broadcasting a feedback message comprising, a length of the frame longer than a combined round-trip propagation and signal processing time: minislot assignments for sending reservation requests related to voice traffic and data traffic, in the uplink channel; slot assignments for transmitting voice traffic and data traffic in the uplink channel; minislot contention results for reservation requests for data slots received in the frame comprising the first reservation request; and a measurement of a data traffic backlog.
 8. The method of claim 1, further comprising: via the downlink channel, broadcasting a feedback message comprising minislot assignments for requests related to data traffic, the minislot assignments selected by a central station for a contention subgroup of terminals, the minislot assignments identified by a level in a virtual stack from a plurality of minislots available for sending reservation requests for data traffic that have experienced unresolved collisions, the central station adapted to update a number of contention subgroups of data users as: c=c ⁻ −n _(idle) −n _(success) +n _(collision) where: c is the updated number of contention subgroups for a second frame; c− is a number of contention subgroups in a first frame; n_(idle) is a number of minislots for data reservation that experienced an idle state in the first frame; n_(success) is a number of minislots for data reservation that experienced a successful allocation of a slot; in the first frame and n_(collision) is a number of minislots for data reservation that experienced a collision in the first frame.
 9. The method of claim 1, further comprising: via a downlink channel, broadcasting a feedback message comprising: a number of minislots available in the second frame for sending reservation requests for data slots; and a new allocation time for reservation requests for data slots to be initiated in the second frame, the new allocation time determined based upon an equation: t _(b+)=min(t _(ƒ) ,t _(b−)+δ(N _(R) −c)) where: t_(b+) is the new allocation time; t_(b−) is an allocation time of a first frame; t_(ƒ) is a start time of a second frame; N_(R) is a number of contention subgroups located at a top of an updated stack; c is a number of contention subgroups; δ=1.035758/T_(max); $T_{\max} \neq \frac{{\left( {N_{F} - {\overset{\_}{N}}_{A}} \right)m_{r}} - {\overset{\_}{N}}_{I}}{N_{F}{m_{r}\left( {1 + {{1/m_{r}}S_{\max}}} \right)}}$ N_(F) is a number of voice calls; N _(A) is an average number of active packets; N _(I) is an average number of inactive packets m_(r) is a ratio of a size of a slot to a size of a minislot; S_(max) is a maximum throughput of the blocked binary tree algorithm.
 10. The method of claim 1, wherein: the second reservation request for an assigned data slot is received via a predetermined minislot selected independently and at random with equal probability from a plurality of minislots available for sending new reservation requests for assigned data slots arriving between a first allocation time and a second allocation time.
 11. The method of claim 1, further comprising: making a determination that a number of virtual stack levels associated with reservation requests for assigned data slots undergoing collision resolution is smaller than a number of minislots available for sending reservation requests for assigned data slots.
 12. The method of claim 1, further comprising: assigning at least one minislot in the uplink channel based upon minislot contention information, wherein the minislot contention information comprises information relating to a successful sending of the second reservation request for a data slot.
 13. The method of claim 1, further comprising: assigning at least one minislot in the uplink channel based upon minislot contention information, wherein the minislot contention information comprises information relating to a collision of the second reservation request for a data slot.
 14. The method of claim 1, further comprising: adjusting a virtual stack level value identifying a contention subgroup of terminals from which the second reservation request for a data slot in the uplink channel has been received, the virtual stack level value based on minislot contention information.
 15. The method of claim 1, further comprising: subtracting one from a virtual stack level value for each noncolliding contention subgroup of terminals identified by virtual stack levels less than a particular virtual stack level associated with a second reservation request for a data slot, the virtual stack level adapted to identify a contention subgroup of terminals sending reservation requests for data slots via the uplink channel.
 16. The method of claim 1, further comprising: adding one to a virtual stack level value for each colliding contention subgroup of terminals identified by a virtual stack level that is less than a particular virtual stack level associated with a second reservation request for a data slot, the virtual stack level adapted to identify a contention subgroup of terminals sending reservation requests for data slots via the uplink channel.
 17. The method of claim 1, further comprising: receiving a message indicative of an end of a speech talkspurt in the voice traffic.
 18. A multiple access communication protocol implemented on a system, the system comprising: an uplink channel; and a downlink channel adapted to: responsive to a first reservation request, broadcast information regarding an assignment of a first slot of a plurality of slots to transmit voice traffic, the plurality of slots transmitted via an uplink channel, the first reservation request adapted to cause a contention-free reservation of the first slot; and broadcast information regarding a reassignment of a second slot of the plurality of slots to transmit data traffic, the second slot previously assigned to transmit voice traffic, the data traffic assigned to the second slot based on a blocked binary tree algorithm; via the uplink channel, receiving a second reservation request for an assigned data slot; and making a determination that a virtual stack level associated with the second reservation request for the assigned data slot has a smaller value than the a number of minislots available for sending reservation requests for data slots, a first data terminal having a packet that arrives during a first allocation interval adapted to occupy a top level of the virtual stack, a second data terminal having a packet that arrives during a second allocation interval adapted to occupy a next level down from the top level of the virtual stack, the second allocation interval subsequent to the first allocation interval, responsive to a detected collision at the top level of the virtual stack, the first data terminal adapted to randomly select a 0 or a 1 with equal probability, responsive to selection of the 0, the first data terminal adapted to remain at the top level of the virtual stack, responsive to selection of the 1, the first data terminal adapted to occupy the next level down from the top level of the virtual stack. 